var _ = require("lodash");
// _.keyBy(collection, [iteratee=_.identity])
// 它的作用是根据指定的迭代函数或者属性名，将集合中的每个元素转换为一个对象，
// 对象的键是根据指定的条件生成的，这里主要就是搞定键的生成
// 类似于生成树形结构的第一个数据转换方式

let collection = [
  { id: "1", name: "John" },
  { id: "2", name: "Jane" },
  { id: "3", name: "Doe" },
];

let result = _.keyBy(collection, "id");
// console.log(result);

// 需要注意，如果最后生成的键名一致，这个方法会替换原有的键，留下最后一个
let result2 = _.keyBy(collection, (obj) => obj.name[0]);
console.log(result2);

var array = [
  { dir: "left", code: 97 },
  { dir: "right", code: 100 },
];

let a = _.keyBy(array, function (o) {
  return String.fromCharCode(o.code);
});
console.log(a);
